﻿using System;
using System.Collections.Generic;
using System.Text;
using GH.DBUtility;//请先添加引用
using System.Data;

namespace GH.DAL
{
    public class RecuperatePlan
    {
        public RecuperatePlan()
        { }

        /// <summary>
        /// 得到最大ID
        /// </summary>
        public int GetMaxId()
        {
            return DbHelperSQL.GetMaxID("单位", "员工疗养计划");
        }


        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(int 单位, string 年度1)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) from 员工疗养计划");
            strSql.Append(" where 单位=" + 单位 + " and 年度1='" + 年度1 + "' ");
            return DbHelperSQL.Exists(strSql.ToString());
        }

        /// <summary>
        /// 增加一条数据
        /// </summary>
        public void Add(GH.Model.员工疗养计划 model)
        {
            StringBuilder strSql = new StringBuilder();
            StringBuilder strSql1 = new StringBuilder();
            StringBuilder strSql2 = new StringBuilder();
            if (model.单位 != null)
            {
                strSql1.Append("单位,");
                strSql2.Append("" + model.单位 + ",");
            }
            if (model.年度1 != null)
            {
                strSql1.Append("年度1,");
                strSql2.Append("'" + model.年度1 + "',");
            }
            if (model.计划人数1 != null)
            {
                strSql1.Append("计划人数1,");
                strSql2.Append("" + model.计划人数1 + ",");
            }
            if (model.年度2 != null)
            {
                strSql1.Append("年度2,");
                strSql2.Append("'" + model.年度2 + "',");
            }
            if (model.计划人数2 != null)
            {
                strSql1.Append("计划人数2,");
                strSql2.Append("" + model.计划人数2 + ",");
            }
            if (model.年度3 != null)
            {
                strSql1.Append("年度3,");
                strSql2.Append("'" + model.年度3 + "',");
            }
            if (model.计划人数3 != null)
            {
                strSql1.Append("计划人数3,");
                strSql2.Append("" + model.计划人数3 + ",");
            }
            if (model.年度4 != null)
            {
                strSql1.Append("年度4,");
                strSql2.Append("'" + model.年度4 + "',");
            }
            if (model.计划人数4 != null)
            {
                strSql1.Append("计划人数4,");
                strSql2.Append("" + model.计划人数4 + ",");
            }
            if (model.年度5 != null)
            {
                strSql1.Append("年度5,");
                strSql2.Append("'" + model.年度5 + "',");
            }
            if (model.计划人数5 != null)
            {
                strSql1.Append("计划人数5,");
                strSql2.Append("" + model.计划人数5 + ",");
            }
            strSql.Append("insert into 员工疗养计划(");
            strSql.Append(strSql1.ToString().Remove(strSql1.Length - 1));
            strSql.Append(")");
            strSql.Append(" values (");
            strSql.Append(strSql2.ToString().Remove(strSql2.Length - 1));
            strSql.Append(")");
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }

        /// <summary>
        /// 更新一条数据
        /// </summary>
        public void Update(GH.Model.员工疗养计划 model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update 员工疗养计划 set ");
            if (model.计划人数1 != null)
            {
                strSql.Append("计划人数1=" + model.计划人数1 + ",");
            }
            if (model.年度2 != null)
            {
                strSql.Append("年度2='" + model.年度2 + "',");
            }
            if (model.计划人数2 != null)
            {
                strSql.Append("计划人数2=" + model.计划人数2 + ",");
            }
            if (model.年度3 != null)
            {
                strSql.Append("年度3='" + model.年度3 + "',");
            }
            if (model.计划人数3 != null)
            {
                strSql.Append("计划人数3=" + model.计划人数3 + ",");
            }
            if (model.年度4 != null)
            {
                strSql.Append("年度4='" + model.年度4 + "',");
            }
            if (model.计划人数4 != null)
            {
                strSql.Append("计划人数4=" + model.计划人数4 + ",");
            }
            if (model.年度5 != null)
            {
                strSql.Append("年度5='" + model.年度5 + "',");
            }
            if (model.计划人数5 != null)
            {
                strSql.Append("计划人数5=" + model.计划人数5 + ",");
            }
            int n = strSql.ToString().LastIndexOf(",");
            strSql.Remove(n, 1);
            strSql.Append(" where 单位=" + model.单位 + " and 年度1='" + model.年度1 + "' ");
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public void Delete(int 单位, string 年度1)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from 员工疗养计划 ");
            strSql.Append(" where 单位=" + 单位 + " and 年度1='" + 年度1 + "' ");
            DbHelperSQL.ExecuteSql(strSql.ToString());
        }

        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public GH.Model.员工疗养计划 GetModel(int 单位, string 年度1)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select  top 1  ");
            strSql.Append(" 单位,年度1,计划人数1,年度2,计划人数2,年度3,计划人数3,年度4,计划人数4,年度5,计划人数5 ");
            strSql.Append(" from 员工疗养计划 ");
            strSql.Append(" where 单位=" + 单位 + " and 年度1='" + 年度1 + "' ");
            GH.Model.员工疗养计划 model = new GH.Model.员工疗养计划();
            DataSet ds = DbHelperSQL.Query(strSql.ToString());
            if (ds.Tables[0].Rows.Count > 0)
            {
                if (ds.Tables[0].Rows[0]["单位"].ToString() != "")
                {
                    model.单位 = int.Parse(ds.Tables[0].Rows[0]["单位"].ToString());
                }
                model.年度1 = ds.Tables[0].Rows[0]["年度1"].ToString();
                if (ds.Tables[0].Rows[0]["计划人数1"].ToString() != "")
                {
                    model.计划人数1 = int.Parse(ds.Tables[0].Rows[0]["计划人数1"].ToString());
                }
                model.年度2 = ds.Tables[0].Rows[0]["年度2"].ToString();
                if (ds.Tables[0].Rows[0]["计划人数2"].ToString() != "")
                {
                    model.计划人数2 = int.Parse(ds.Tables[0].Rows[0]["计划人数2"].ToString());
                }
                model.年度3 = ds.Tables[0].Rows[0]["年度3"].ToString();
                if (ds.Tables[0].Rows[0]["计划人数3"].ToString() != "")
                {
                    model.计划人数3 = int.Parse(ds.Tables[0].Rows[0]["计划人数3"].ToString());
                }
                model.年度4 = ds.Tables[0].Rows[0]["年度4"].ToString();
                if (ds.Tables[0].Rows[0]["计划人数4"].ToString() != "")
                {
                    model.计划人数4 = int.Parse(ds.Tables[0].Rows[0]["计划人数4"].ToString());
                }
                model.年度5 = ds.Tables[0].Rows[0]["年度5"].ToString();
                if (ds.Tables[0].Rows[0]["计划人数5"].ToString() != "")
                {
                    model.计划人数5 = int.Parse(ds.Tables[0].Rows[0]["计划人数5"].ToString());
                }
                return model;
            }
            else
            {
                return null;
            }
        }
        ///// <summary>
        ///// 获得数据列表
        ///// </summary>
        //public DataSet GetList(string strWhere)
        //{
        //    StringBuilder strSql = new StringBuilder();

        //    strSql.Append("SELECT    员工疗养计划.单位 ,  ");
        //    strSql.Append("dbo.员工疗养计划.年度1,  ");
        //    strSql.Append("( dbo.员工疗养计划.计划人数1+ dbo.员工疗养计划.计划人数2+ dbo.员工疗养计划.计划人数3+ dbo.员工疗养计划.计划人数4 + dbo.员工疗养计划.计划人数5 )as 总计,");
        //    strSql.Append("dbo.员工疗养计划.计划人数1,  ");
        //    strSql.Append("dbo.员工疗养计划.计划人数2 ,  ");
        //    strSql.Append("dbo.员工疗养计划.计划人数3 ,  ");
        //    strSql.Append("dbo.员工疗养计划.计划人数4 ,  ");
        //    strSql.Append("dbo.员工疗养计划.计划人数5 ,  ");
        //    strSql.Append("dbo.工会单位信息.单位名称 ");
        //    strSql.Append("FROM         dbo.员工疗养计划 LEFT  JOIN ");
        //    strSql.Append("dbo.工会单位信息 ON dbo.员工疗养计划.单位 = dbo.工会单位信息.ID");
        //    if (strWhere.Trim() != "")
        //    {
        //        strSql.Append(" where " + strWhere);
        //    }
        //    return DbHelperSQL.Query(strSql.ToString());
        //}

        public DataSet GetList(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT    工会单位信息.ID as 单位 ,  ");
            strSql.Append("员工疗养计划.年度1,  ");
            strSql.Append("( 员工疗养计划.计划人数1+ 员工疗养计划.计划人数2+ 员工疗养计划.计划人数3+ 员工疗养计划.计划人数4 + 员工疗养计划.计划人数5 )as 总计,");
            strSql.Append("员工疗养计划.计划人数1,  ");
            strSql.Append("员工疗养计划.计划人数2 ,  ");
            strSql.Append("员工疗养计划.计划人数3 ,  ");
            strSql.Append("员工疗养计划.计划人数4 ,  ");
            strSql.Append("员工疗养计划.计划人数5 ,  ");
            strSql.Append("工会单位信息.单位名称 ");
            strSql.Append("FROM 工会单位信息 LEFT  JOIN ");
            strSql.Append(" 员工疗养计划 ON 工会单位信息.ID= 员工疗养计划.单位  ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }

            return DbHelperSQL.Query(strSql.ToString());
        }

        public DataSet GetList(string strWhere, string theDate)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append("SELECT    工会单位信息.ID as 单位 ,  ");
            strSql.Append("员工疗养计划.年度1,  ");
            strSql.Append("( 员工疗养计划.计划人数1+ 员工疗养计划.计划人数2+ 员工疗养计划.计划人数3+ 员工疗养计划.计划人数4 + 员工疗养计划.计划人数5 )as 总计,");
            strSql.Append("员工疗养计划.计划人数1,  ");
            strSql.Append("员工疗养计划.计划人数2 ,  ");
            strSql.Append("员工疗养计划.计划人数3 ,  ");
            strSql.Append("员工疗养计划.计划人数4 ,  ");
            strSql.Append("员工疗养计划.计划人数5 ,  ");
            strSql.Append("工会单位信息.单位名称 ");
            strSql.Append("FROM 工会单位信息 LEFT  JOIN ");
            strSql.AppendFormat(" 员工疗养计划 ON 工会单位信息.ID= 员工疗养计划.单位 AND 年度1='{0}' ", theDate);
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }

            return DbHelperSQL.Query(strSql.ToString());
        }


        public string DateIsExtis(string date)
        {
            int theDate = Convert.ToInt32(date);
            string strSql = "SELECT 年度1 FROM 员工疗养计划 where convert(int,年度1)>" + (theDate - 5) + " and convert(int,年度1)<=" + theDate + "  group by 年度1";

            object o = DbHelperSQL.GetSingle(strSql);
            if (Convert.ToInt32(o) == 0)
            {
                return "Null";
            }
            else
            {
                return o.ToString();
            }
        }

        public string DateIsExtis(int unionID, string date)
        {
            int theDate = Convert.ToInt32(date);
            string strSql = "SELECT 年度1 FROM 员工疗养计划 where convert(int,年度1)>" + (theDate - 5) + " and convert(int,年度1)<=" + theDate + " and 单位=" + unionID + " group by 年度1";

            object o = DbHelperSQL.GetSingle(strSql);
            if (Convert.ToInt32(o) == 0)
            {
                return "Null";
            }
            else
            {
                return o.ToString();
            }
        }


        public DataSet GetYearListByUnionID(int UnionID)
        {
            string strSql = " select 年度1 from 员工疗养计划";

            if (UnionID != 0)
            {
                strSql += " where 单位=" + UnionID;
            }
            strSql += " group by 年度1 ";
            return DbHelperSQL.Query(strSql.ToString());
        }

        public bool UpdateRecuperateCondationList(System.Collections.Generic.List<GH.Model.员工疗养计划> listModel, int intUnion, string liaoyangqkYear)
        {
            try
            {
                System.Collections.Generic.List<String> listStr = new System.Collections.Generic.List<string>();
                //删除当前记录
                System.Text.StringBuilder strSqlDelete = new StringBuilder();
                strSqlDelete.Append("delete from 员工疗养计划");
                strSqlDelete.AppendFormat(" where 单位={0}", intUnion);
                strSqlDelete.AppendFormat(" and 年度1='{0}'", liaoyangqkYear);
                listStr.Add(strSqlDelete.ToString());
                //便利画面数据



                foreach (GH.Model.员工疗养计划 modDetail in listModel)
                {
                    StringBuilder strSqlInsert = new StringBuilder();
                    strSqlInsert.Append("insert into 员工疗养计划(");
                    strSqlInsert.Append("单位,年度1,计划人数1,计划人数2,计划人数3,计划人数4,计划人数5)");
                    strSqlInsert.Append(" values (");
                    strSqlInsert.AppendFormat(
                        "{0},'{1}','{2}','{3}','{4}','{5}','{6}')",
                        modDetail.单位,
                        modDetail.年度1, modDetail.计划人数1, modDetail.计划人数2, modDetail.计划人数3, modDetail.计划人数4, modDetail.计划人数5);
                    listStr.Add(strSqlInsert.ToString());
                }
                DbHelperSQL.ExecuteSqlTran(listStr);
            }
            catch
            {
                return false;
            }
            return true;
        }


        /// <summary>
        /// 获得前几行数据
        /// </summary>
        public DataSet GetList(int Top, string strWhere, string filedOrder)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select ");
            if (Top > 0)
            {
                strSql.Append(" top " + Top.ToString());
            }
            strSql.Append(" 单位,年度1,计划人数1,年度2,计划人数2,年度3,计划人数3,年度4,计划人数4,年度5,计划人数5 ");
            strSql.Append(" FROM 员工疗养计划 ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" order by " + filedOrder);
            return DbHelperSQL.Query(strSql.ToString());
        }


        public bool UpdateList(List<GH.Model.员工疗养计划> listModel)
        {
            try
            {

                System.Collections.Generic.List<String> listStr = new System.Collections.Generic.List<string>();




                foreach (GH.Model.员工疗养计划 modDetail in listModel)
                {

                    StringBuilder strSqlDelete = new StringBuilder();
                    strSqlDelete.Append("Delete From 员工疗养计划");
                    strSqlDelete.AppendFormat(" Where 单位={0} AND 年度1='{1}'", modDetail.单位, modDetail.年度1);
                    listStr.Add(strSqlDelete.ToString());

                }

                foreach (GH.Model.员工疗养计划 model in listModel)
                {

                    StringBuilder strSqlInsert = new StringBuilder();

                    StringBuilder strSql1 = new StringBuilder();
                    StringBuilder strSql2 = new StringBuilder();
                    if (model.单位 != null)
                    {
                        strSql1.Append("单位,");
                        strSql2.Append("" + model.单位 + ",");
                    }
                    if (model.年度1 != null)
                    {
                        strSql1.Append("年度1,");
                        strSql2.Append("'" + model.年度1 + "',");
                    }
                    if (model.计划人数1 != null)
                    {
                        strSql1.Append("计划人数1,");
                        strSql2.Append("" + model.计划人数1 + ",");
                    }
                    
                    if (model.计划人数2 != null)
                    {
                        strSql1.Append("计划人数2,");
                        strSql2.Append("" + model.计划人数2 + ",");
                    }
                    
                    if (model.计划人数3 != null)
                    {
                        strSql1.Append("计划人数3,");
                        strSql2.Append("" + model.计划人数3 + ",");
                    }
                    
                    if (model.计划人数4 != null)
                    {
                        strSql1.Append("计划人数4,");
                        strSql2.Append("" + model.计划人数4 + ",");
                    }
                    
                    if (model.计划人数5 != null)
                    {
                        strSql1.Append("计划人数5,");
                        strSql2.Append("" + model.计划人数5 + ",");
                    }
                    strSqlInsert.Append("insert into 员工疗养计划(");
                    strSqlInsert.Append(strSql1.ToString().Remove(strSql1.Length - 1));
                    strSqlInsert.Append(")");
                    strSqlInsert.Append(" values (");
                    strSqlInsert.Append(strSql2.ToString().Remove(strSql2.Length - 1));
                    strSqlInsert.Append(")");
                    listStr.Add(strSqlInsert.ToString());

                }
                DbHelperSQL.ExecuteSqlTran(listStr);

            }
            catch
            {

                throw;
            }
            return true;
        }
    }
}